// These are meant to be typed into the REPL. You can also run
// scala -Xnojline < repl-session.scala to run them all at once.
/**
  * 4.4 元组
  * 元组是不同类型的值的聚集
  *
  * 元组使用 _1,_2,_3 来访问
  */
// 元组操作
/**
  * 注意， 元组是从 1 开始不是 0;你可以把 t._2 改写成 t _2 但不能是 t_2;元组可用
  * 于函数需要返回不止一个值得情况；使用元组的原因之一是把多个值绑在一起，以
  * 便他们能够被一起处理。
  */
(1, 3.14, "Fred")

val t = (1, 3.14, "Fred")

val second = t._2

val first = t _1

//变量赋值
val (first1, second1, third) = t

val (first2, second2, _) = t


// 拉链操作
val symbols = Array("<", "-", ">")
val counts = Array(2, 10, 2)
val pairs = symbols.zip(counts)

for ((s, n) <- pairs) print(s * n)

symbols.zip(counts).toList
symbols.zip(counts).toMap
